<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Set</title>
</head>
<body>
    <script>
        // Map Json 的升级版
        /*
            Map
                .get()  根据 key/变量引用 获取值
                .set()  设置某个 key 的值
                .has()  检查某个键是否存在
                .delete() 删除某个键
                .keys()   获取所有的键
                .forEach() 内部迭代器
                .clear()    清空 map
                .values()   获取所有的 值
        */

        let data = {
            user: {},
            balance: {}
        }
        let data_2 = {
            user: {},
        }
        let jsonMap = {
            'x-1111': data
        }

        let map = new Map()
        let key = 'key'
        map.set('data', data)
        map.set('data', data_2)

        console.log(
            map.get('data')
        )

        map.set('num', 11)
        // map.delete('num')

        // map.clear()

        console.log(
            // map.has('data'),
            // map.has('num'),
            map.values()
        )

        // for (let key of map.keys()) {
        //     console.log(key)
        // }

        /*
            WeakMap
                只保留对象的引用, 不会产生引用计数
        */

        let weakMap = new WeakMap()

        let o = {}
        let o_2 = {}
        let data_3 = {
            user: '123'
        }
        weakMap.set(o, data)
        weakMap.set(o_2, data_3)

        data_3 = undefined

        console.log(
            weakMap
        )



    </script>
</body>
</html>